package br.gov.ce.fortaleza.cti.web.bean;


import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.gov.ce.fortaleza.cti.util.GeoUtil;

@Scope("session")
@Component("controlBean")
public class ControlStateBean extends BaseStateBean {

	private static final Log logger = LogFactory.getLog(ControlStateBean.class);

	public String userMail;


	public String logout() {

		if (GeoUtil.getSession() != null) {

			GeoUtil.getSession().invalidate();
		}

		return SUCCESS;
	}

	public String lembrarSenha() {

		if (GeoUtil.getSession() != null) {

			GeoUtil.getSession().invalidate();
		}

		return SUCCESS;
	}

	public String voltar() {

		if (GeoUtil.getSession() != null) {

			GeoUtil.getSession().invalidate();
		}

		return SUCCESS;
	}


	public boolean isLoginErro() {

		return GeoUtil.getRequest().getParameter("login_error") != null;
	}


	public boolean isErro() {

		return GeoUtil.getRequest().getParameter("error") != null;
	}

	public boolean isUsuarioAdministrador() {

		return GeoUtil.isUsuarioAdministrador() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroVeiculo() {

		return GeoUtil.isCadastroVeiculo() || GeoUtil.isAdministradorSistema();
	}

	public boolean isAcessoWikiCrimes() {

		return GeoUtil.isAcessoWikiCrimes() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroRota() {

		return GeoUtil.isCadastroRota() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroServico() {

		return GeoUtil.isCadastroServico() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroProduto() {

		return GeoUtil.isCadastroProduto() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroManutencao() {

		return GeoUtil.isCadastroManutencao() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroPortaria() {

		return GeoUtil.isCadastroPortaria() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroFornecedor() {

		return GeoUtil.isCadastroFornecedor() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroPonto() {

		return GeoUtil.isCadastroPonto() || GeoUtil.isAdministradorSistema();
	}

	public boolean isCadastroArea() {

		return GeoUtil.isCadastroArea() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioAcompanhamentoRota() {

		return GeoUtil.isRelatorioAcompanhamentoRota() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioEstatistico() {

		return GeoUtil.isRelatorioEstatistico() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioHorimetro() {

		return GeoUtil.isRelatorioHorimetro() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioPortaria() {

		return GeoUtil.isRelatorioPortaria() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioOdometro() {

		return GeoUtil.isRelatorioOdometro() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioPontosParada() {

		return GeoUtil.isRelatorioPontosParada() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioPontosPassagem(){

		return GeoUtil.isRelatorioPontosPassagem() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioPosicao() {

		return GeoUtil.isRelatorioPosicao() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioSensores() {

		return GeoUtil.isRelatorioSensores() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioTelemetria() {

		return GeoUtil.isRelatorioTelemetria() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioBanguela() {

		return GeoUtil.isRelatorioBanguela() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioVelocidadeMaxima() {

		return GeoUtil.isRelatorioVelocidadeMaxima() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioTemperaturaMaxima() {

		return GeoUtil.isRelatorioTemperaturaMaxima() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioRpmMaximo() {

		return GeoUtil.isRelatorioRpmMaximo() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioEstatisticaVeiculo(){

		return GeoUtil.isRelatorioEstatisticaVeiculo() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioLevantamentoGarfo(){

		return GeoUtil.isRelatorioLevantamentoGarfo() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioSensoresTelemetria(){

		return GeoUtil.isRelatorioSensoresTelemetria() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioNivelCombustivel() {

		return GeoUtil.isRelatorioNivelCombustivel() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioHorimetroTelemetria() {

		return GeoUtil.isRelatorioHorimetroTelemetria() || GeoUtil.isAdministradorSistema();
	}

	public boolean isHasTelemetria(){

		return GeoUtil.isRelatorioHorimetroTelemetria() || GeoUtil.isRelatorioNivelCombustivel() ||  isRelatorioSensoresTelemetria() || GeoUtil.isRelatorioEstatisticaVeiculo() || GeoUtil.isRelatorioRpmMaximo() ||  GeoUtil.isRelatorioTemperaturaMaxima(); 
	}

	public boolean isRelatorioTemperatura() {

		return GeoUtil.isRelatorioTemperatura() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioVelocidade() {

		return GeoUtil.isRelatorioVelocidade() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioLogUsuario() {

		return GeoUtil.isRelatorioLogUsuario() || GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioTerminalTexto() {

		return GeoUtil.isRelatorioTerminalTexto() || GeoUtil.isAdministradorSistema();
	}

	public boolean isMonitoramentoTemperatura() {

		return GeoUtil.isMonitoramentoTemperatura() || GeoUtil.isAdministradorSistema();
	}

	public boolean isMonitoramentoOcorrencia() {

		return GeoUtil.isMonitoramentoOcorrencia() || GeoUtil.isAdministradorSistema();
	}

	public boolean isMonitoramentoAudio() {

		return GeoUtil.isMonitoramentoAudio();
	}

	public boolean isChecklistVeiculos() {

		return GeoUtil.isAdministradorSistema();
	}

	public boolean isRelatorioVeiculo() {

		return GeoUtil.isAdministradorSistema();
	}

	public boolean isComando() {

		return GeoUtil.isComando() || GeoUtil.isAdministradorSistema();
	}

	public boolean isTransmissao() {

		return GeoUtil.isTransmissao() || GeoUtil.isAdministradorSistema();
	}

	public String getUserMail() {

		return userMail;
	}

	public void setUserMail(String userMail) {

		this.userMail = userMail;
	}
}